#include "common/api/server.h"
#include "common/api/server_helper.hpp"

#include "api_controller.h"

#include "del_element_handler.h"

namespace Api
{

DelElementHandler::DelElementHandler(
    crow::App<>& crowApplication,
    ApiController* controller
)
    : m_controller(controller)
{
    ADD_CROW_ROUTE_DEL_ELEMENT(
        crowApplication,
        [this](
            const Uuids::Uuid& sessionUuid,
            Elements::ElementType type,
            unsigned id
        ) -> bool
        {
            m_controller->changesManager().push(type, id);
            // TODO : добавить проверку прав
            m_controller->dataController()->remove(type, id);
            // TODO : реализовать оповещение заинтересованных клиентов
            return true;
        }
    );
}

} // namespace Api
